package net.simflow.swf.analyzer.bgnetwork.stats.data;

import java.util.HashMap;
import java.util.HashSet;
import java.util.TreeMap;

import net.simflow.swf.analyzer.bgnetwork.data.BGNetwork;
import net.simflow.swf.analyzer.bgnetwork.data.BGNode;
import net.simflow.swf.analyzer.network.data.Flow;
import net.simflow.swf.analyzer.network.data.Service;

public class BGNetworkStats {
	public final static String NETWORK_NAME = "BG Network Name";
	public final static String NETWORK_FLOW_NEIGHBOR = "BG Network Flow Neighbors";
	public final static String NETWORK_SERVICE_NEIGHBOR = "BG Network Service Neighbors";
	public final static String NETWORK_FLOW_DEGREE = "BG Network Flow Degree Distribution";
	public final static String NETWORK_SERVICE_DEGREE = "BG Network Service Degree Distribution";

	public final static String FLOW_PART_NAME = "BG Flow Part Name";
	public final static String FLOW_PART_NEIGHBOR = "BG Flow Part Neighbors";
	public final static String FLOW_PART_DEGREE = "BG Flow Part Degree Distribution";

	public final static String SERVICE_PART_NAME = "BG Service Part Name";
	public final static String SERVICE_PART_NEIGHBOR = "BG Service Part Neighbors";
	public final static String SERVICE_PART_DEGREE = "BG Service Part Degree Distribution";

	public final static String ONE_GRAPH_NAME = "Graph Name";
	public final static String ONE_NEIGHBOR = "Neighbors";

	private BGNetwork network;
	private String networkName;
	private TreeMap<Integer, HashSet<BGNode>> networkFlowDegreeDistribution;
	private TreeMap<Integer, HashSet<BGNode>> networkServiceDegreeDistribution;
	private HashMap<BGNode, HashSet<BGNode>> networkFlowNeighborMap;
	private HashMap<BGNode, HashSet<BGNode>> networkServiceNeighborMap;

	private HashMap<Flow, BGNode> flowNetwork;
	private String flowNetworkName;
	private TreeMap<Integer, HashSet<BGNode>> flowNetworkDegreeDistribution;
	private HashMap<BGNode, HashSet<BGNode>> flowNeighborMap;

	private HashMap<Service, BGNode> serviceNetwork;
	private String serviceNetworkName;
	private TreeMap<Integer, HashSet<BGNode>> serviceNetworkDegreeDistribution;
	private HashMap<BGNode, HashSet<BGNode>> serviceNeighborMap;

	public BGNetwork getNetwork() {
		return network;
	}

	public void setNetwork(BGNetwork network) {
		this.network = network;
	}

	public String getNetworkName() {
		return networkName;
	}

	public void setNetworkName(String networkName) {
		this.networkName = networkName;
	}

	public TreeMap<Integer, HashSet<BGNode>> getNetworkFlowDegreeDistribution() {
		return networkFlowDegreeDistribution;
	}

	public void setNetworkFlowDegreeDistribution(
			TreeMap<Integer, HashSet<BGNode>> networkFlowDegreeDistribution) {
		this.networkFlowDegreeDistribution = networkFlowDegreeDistribution;
	}

	public TreeMap<Integer, HashSet<BGNode>> getNetworkServiceDegreeDistribution() {
		return networkServiceDegreeDistribution;
	}

	public void setNetworkServiceDegreeDistribution(
			TreeMap<Integer, HashSet<BGNode>> networkServiceDegreeDistribution) {
		this.networkServiceDegreeDistribution = networkServiceDegreeDistribution;
	}

	public HashMap<BGNode, HashSet<BGNode>> getNetworkFlowNeighborMap() {
		return networkFlowNeighborMap;
	}

	public void setNetworkFlowNeighborMap(
			HashMap<BGNode, HashSet<BGNode>> networkFlowNeighborMap) {
		this.networkFlowNeighborMap = networkFlowNeighborMap;
	}

	public HashMap<BGNode, HashSet<BGNode>> getNetworkServiceNeighborMap() {
		return networkServiceNeighborMap;
	}

	public void setNetworkServiceNeighborMap(
			HashMap<BGNode, HashSet<BGNode>> networkServiceNeighborMap) {
		this.networkServiceNeighborMap = networkServiceNeighborMap;
	}

	public HashMap<Flow, BGNode> getFlowNetwork() {
		return flowNetwork;
	}

	public void setFlowNetwork(HashMap<Flow, BGNode> flowNetwork) {
		this.flowNetwork = flowNetwork;
	}

	public String getFlowNetworkName() {
		return flowNetworkName;
	}

	public void setFlowNetworkName(String flowNetworkName) {
		this.flowNetworkName = flowNetworkName;
	}

	public TreeMap<Integer, HashSet<BGNode>> getFlowNetworkDegreeDistribution() {
		return flowNetworkDegreeDistribution;
	}

	public void setFlowNetworkDegreeDistribution(
			TreeMap<Integer, HashSet<BGNode>> flowNetworkDegreeDistribution) {
		this.flowNetworkDegreeDistribution = flowNetworkDegreeDistribution;
	}

	public HashMap<BGNode, HashSet<BGNode>> getFlowNeighborMap() {
		return flowNeighborMap;
	}

	public void setFlowNeighborMap(
			HashMap<BGNode, HashSet<BGNode>> flowNeighborMap) {
		this.flowNeighborMap = flowNeighborMap;
	}

	public HashMap<Service, BGNode> getServiceNetwork() {
		return serviceNetwork;
	}

	public void setServiceNetwork(HashMap<Service, BGNode> serviceNetwork) {
		this.serviceNetwork = serviceNetwork;
	}

	public String getServiceNetworkName() {
		return serviceNetworkName;
	}

	public void setServiceNetworkName(String serviceNetworkName) {
		this.serviceNetworkName = serviceNetworkName;
	}

	public TreeMap<Integer, HashSet<BGNode>> getServiceNetworkDegreeDistribution() {
		return serviceNetworkDegreeDistribution;
	}

	public void setServiceNetworkDegreeDistribution(
			TreeMap<Integer, HashSet<BGNode>> serviceNetworkDegreeDistribution) {
		this.serviceNetworkDegreeDistribution = serviceNetworkDegreeDistribution;
	}

	public HashMap<BGNode, HashSet<BGNode>> getServiceNeighborMap() {
		return serviceNeighborMap;
	}

	public void setServiceNeighborMap(
			HashMap<BGNode, HashSet<BGNode>> serviceNeighborMap) {
		this.serviceNeighborMap = serviceNeighborMap;
	}
}
